package com.itany.nmms.service;

import com.github.pagehelper.PageInfo;
import com.itany.nmms.entity.ProductType;
import com.itany.nmms.exception.ProductTypeExistException;
import com.itany.nmms.exception.ProductTypeNotExistException;
import com.itany.nmms.exception.RequestParameterErrorException;

import java.util.List;

/**
 * @Author:石小俊
 * @Date:2023/1/4 11:14
 * @Version:1.0-SNAPSHOT
 * @Description:
 */
public interface ProductTypeService {

    /**
     * 添加商品类型
     * 对于状态,真实开发中默认一般给禁用
     * 添加成功之后,走流程,流程走完改为启用
     * @param name  类型名称
     */
    public void addType(String name) throws RequestParameterErrorException, ProductTypeExistException;

    /**
     * 分页查询所有商品类型信息
     * @param pageNo        当前页
     * @param pageSize      一页显示几条数据
     * @return
     */
    public PageInfo<ProductType> findPage(String pageNo, String pageSize);

    /**
     * 修改设置默认值
     * @param id
     * @return
     */
    public ProductType findById(String id) throws RequestParameterErrorException;

    /**
     * 修改类型名称
     * @param id
     * @param name
     */
    public void modifyName(String id,String name) throws RequestParameterErrorException, ProductTypeExistException;

    /**
     * 启用与禁用
     * @param id
     */
    public void modifyStatus(String id) throws RequestParameterErrorException;

    /**
     * 查询所有有效的商品类型
     * @return
     */
    public List<ProductType> findEnable() throws ProductTypeNotExistException;
}
